#ifndef RIVIATOOLBASE_H
#define RIVIATOOLBASE_H

#include "opencv2/core.hpp"

class RIVIAToolBase
{
public:
    RIVIAToolBase();
    virtual ~RIVIAToolBase();

public:
    virtual void applyOnScreen(int x, int y) = 0;

private:
    void genROIRect(cv::Mat& imagemat, cv::Mat& brushmat, int x, int y,
                    cv::Rect& roi_rect, cv::Rect& brushroi_rect);

protected:
    void updateROI(int x, int y);

protected:
    cv::Mat m_brushroi_mat;
    cv::Mat m_roi_mat;
    cv::Mat m_roi_matproc;
};

#endif // RIVIATOOLBASE_H
